Intelligent recording of favorite video content using a video services receiver

ABSTRACT

A video services receiver and related operating methods are presented here. The video services receiver is configured to maintain a database that indicates a viewing pattern for a user of the video services receiver. The video services receiver is configured to detect a condition that is inconsistent with the maintained viewing pattern for the user. In response to the detection of an inconsistent condition, the video services receiver records a designated program event included in the viewing pattern for the user, wherein the recording addresses the detected condition. In some scenarios, the receiver buffers the designated program event to allow the user to view the entirety of the buffered program event. In other scenarios, the receiver records the designated program event and sends a notification to the user when the receiver determines that the user is absent or is not viewing any programming from the receiver.

TECHNICAL FIELD

Embodiments of the subject matter described herein relate generally tovideo services systems. More particularly, embodiments of the subjectmatter relate to systems and methods for automatically recording orbuffering video programming for a user.

BACKGROUND

Most television viewers now receive their video signals through acontent aggregator such as a cable or satellite television provider.Digital video broadcasting (DVB) systems, such as satellite systems, aregenerally known. A DVB system that delivers video service to a home willusually include a video services receiver, system, or device, which iscommonly known as a set-top box (STB). In the typical instance, encodedtelevision signals are sent via a cable or wireless data link to theviewer's home, where the signals are ultimately decoded in the STB. Thedecoded signals can then be viewed on a television or other appropriatedisplay as desired by the viewer.

A practical implementation of an STB may include or cooperate with adigital video recorder (DVR), a time shift buffer, and/or any convenientrecording function that is designed to record video, audio, and/oraudiovisual programs received by the STB. The user can then playrecorded programs at any convenient time. Moreover, a conventional STBcan generate a menu or listing of recorded programs for graphicalrendering on a display device, such as a television or a monitor. Theuser can navigate an onscreen listing of recorded programs to identifyor select a program for playback, to delete recorded content, etc.

Although modern STBs allow users to schedule the recording of programevents (such as favorite broadcast programs), a given user may forget toschedule a recording or may have reasons to not schedule the recordingof all favorite content. In certain situations, a user may be watching adifferent channel or a live sporting event that runs into overtime, suchthat the user misses the beginning of a favorite program. If recordingof that program has not been scheduled, then the user will beinconvenienced. There may be other situations where one or more favoriteprogram events could be missed (if recording has not been previouslyconfigured).

Accordingly, it is desirable to have a methodology for automaticallydetermining that a user might be missing the beginning of a favoriteprogram and, in response to the determination, automatically initiatingthe recording or buffering of the favorite program. Furthermore, otherdesirable features and characteristics will become apparent from thesubsequent detailed description and the appended claims, taken inconjunction with the accompanying drawings and the foregoing technicalfield and background.

BRIEF SUMMARY

An exemplary embodiment of a method of operating a video servicesreceiver maintains a database at the video services receiver, whereinthe database indicates a viewing pattern for a user of the videoservices receiver. The method detects a condition that is inconsistentwith the maintained viewing pattern for the user and, in response to thedetecting, records a designated program event included in the viewingpattern for the user, wherein the recording addresses the detectedcondition.

An exemplary embodiment of a video services receiver is also presentedhere. The video services receiver handles recorded and non-recordedcontent for a user. The video services receiver includes a receiverinterface to receive data associated with video services, a recordingmodule coupled to the receiver interface to record program eventsprovided by the video services, at least one data storage elementcoupled to the recording module to store recorded content for therecording module, and a display interface for a display operativelycoupled to the video services receiver. The display interfacefacilitates presentation of recorded and non-recorded program events onthe display. The video services receiver also includes a processorcoupled to the receiver interface, the recording module, the at leastone data storage element, and the display interface. The processordetects a condition that is inconsistent with a maintained viewingpattern for a user of the video services receiver, and, in response tothe detected condition, activates the recording module to record adesignated program event included in the maintained viewing pattern.

Another embodiment of a method of operating a video services receiver isalso presented here. The method maintains, at the video servicesreceiver, a database that indicates a favorite program event having ascheduled start time. The method continues by detecting that the videoservices receiver is currently tuned to an ongoing program event thatconflicts with the scheduled start time of the favorite program event.In response to the detecting, the method automatically records thefavorite program event at a time that is no later than the scheduledstart time of the favorite program event.

Yet another method of operating a video services receiver is presentedhere. The video services receiver has an associated display elementconfigured to display content provided by the video services receiver.This particular embodiment of the method maintains, at the videoservices receiver, a database that indicates a favorite program eventhaving a scheduled start time. The method continues by detecting thatthe video services receiver is currently in a receiver standby mode,that the display element is currently in a display standby mode, or thatthe video services receiver is currently in the receiver standby modeand the display element is currently in the display standby mode. Inresponse to the detecting, the method automatically records the favoriteprogram event at a time that is no later than the scheduled start timeof the favorite program event.

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the detaileddescription. This summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the subject matter may be derived byreferring to the detailed description and claims when considered inconjunction with the following figures, wherein like reference numbersrefer to similar elements throughout the figures.

FIG. 1 is a schematic representation of an embodiment of a videoservices broadcasting system;

FIG. 2 is a schematic representation of an embodiment of a videoservices receiver suitable for use in the video services broadcastingsystem shown in FIG. 1;

FIG. 3 is a flow chart that illustrates an exemplary embodiment of amethod of operating a video services receiver;

FIG. 4 is a flow chart that illustrates an exemplary embodiment of amethod of operating a video services receiver to buffer the beginning ofa favorite video program event when the user is viewing a conflictingprogram; and

FIG. 5 is a flow chart that illustrates an exemplary embodiment of amethod of operating a video services receiver to record a favorite videoprogram event when the user is not viewing any programming.

DETAILED DESCRIPTION

The following detailed description is merely illustrative in nature andis not intended to limit the embodiments of the subject matter or theapplication and uses of such embodiments. As used herein, the word“exemplary” means “serving as an example, instance, or illustration.”Any implementation described herein as exemplary is not necessarily tobe construed as preferred or advantageous over other implementations.Furthermore, there is no intention to be bound by any expressed orimplied theory presented in the preceding technical field, background,brief summary or the following detailed description.

Techniques and technologies may be described herein in terms offunctional and/or logical block components, and with reference tosymbolic representations of operations, processing tasks, and functionsthat may be performed by various computing components or devices. Suchoperations, tasks, and functions are sometimes referred to as beingcomputer-executed, computerized, software-implemented, orcomputer-implemented. It should be appreciated that the various blockcomponents shown in the figures may be realized by any number ofhardware, software, and/or firmware components configured to perform thespecified functions. For example, an embodiment of a system or acomponent may employ various integrated circuit components, e.g., memoryelements, digital signal processing elements, logic elements, look-uptables, or the like, which may carry out a variety of functions underthe control of one or more microprocessors or other control devices.

The exemplary embodiments described below relate to a video deliverysystem such as a satellite television system, a cable delivery system,an Internet-based content delivery system, or the like. The disclosedsubject matter relates to a recording function of a video servicesreceiver (e.g., a STB, a mobile device with video presentation andrecording functionality, a suitably configured computing device, or thelike). More specifically, the disclosed subject matter relates to anautomated technique for buffering and/or recording favorite videoprogram content on behalf of a user. The automatic buffering/recordingoccurs when the STB determines that there is some type of user viewingconflict that might prevent the user from viewing some or all of thefavorite program. For example, if the user is watching a football gamethat has gone into overtime (on a first channel), the STB automaticallybuffers or records one of the user's favorite programs (assuming thatthe favorite program started before the end of the football game). Asanother example, if the STB or the user's display device is in a standbymode at the start time of a favorite program, then the STB automaticallyrecords the favorite program.

Turning now to the drawings, FIG. 1 is a schematic representation of anembodiment of a video services broadcasting system 100 that is suitablyconfigured to support the techniques and methodologies described in moredetail below. The system 100 (which has been simplified for purposes ofillustration) generally includes, without limitation: a data center 102;an uplink transmit antenna 104; a satellite 106; a downlink receiveantenna 108; a video services receiver 110 or other customer equipment;and a presentation device, such as a display element 112. In typicaldeployments, the video services receiver 110 can be remotely controlledusing a wireless remote control device 113. In certain embodiments, thedata center 102 communicates with the video services receiver 110 via aback-channel connection 114, which may be established through one ormore data communication networks 116. For the sake of brevity,conventional techniques related to satellite communication systems,satellite broadcasting systems, DVB systems, data transmission,signaling, network control, and other functional aspects of the systems(and the individual operating components of the systems) may not bedescribed in detail herein.

The data center 102 may be deployed as a headend facility and/or asatellite uplink facility for the system 100. The data center 102generally functions to control content, signaling data, programminginformation, and other data sent over a high-bandwidth link 118 to anynumber of downlink receive components (only one downlink receive antenna108, corresponding to one customer, is shown in FIG. 1). In practice,the data center 102 also provides content and data that can be used topopulate an interactive electronic program guide (EPG) generated by thevideo services receiver 110. In the embodiment shown in FIG. 1, thehigh-bandwidth link 118 is a direct broadcast satellite (DBS) link thatis relayed by the satellite 106, although equivalent embodiments couldimplement the high-bandwidth link 118 as any sort of cable, terrestrialwireless and/or other communication link as desired.

The data center 102 includes one or more conventional data processingsystems or architectures that are capable of producing signals that aretransmitted via the high-bandwidth link 118. In various embodiments, thedata center 102 represents a satellite or other content distributioncenter having: a data control system for controlling content, signalinginformation, blackout information, programming information, and otherdata; and an uplink control system for transmitting content, signalinginformation, blackout information, programming information, and otherdata using the high-bandwidth link 118. These systems may begeographically, physically and/or logically arranged in any manner, withdata control and uplink control being combined or separated as desired.

The uplink control system used by system 100 is any sort of dataprocessing and/or control system that is able to direct the transmissionof data on the high-bandwidth link 118 in any manner. In the exemplaryembodiment illustrated in FIG. 1, the uplink transmit antenna 104 isable to transmit data to the satellite 106, which in turn uses anynumber of appropriately configured transponders for repeatedtransmission to the downlink receive antenna 108.

Under normal operating conditions, the satellite 106 transmits content,signaling data, blackout information, EPG data, and other data to thedownlink receive antenna 108, using the high-bandwidth link 118. Inpractical embodiments, the downlink receive antenna 108 represents thecustomer's satellite dish, which is coupled to the video servicesreceiver 110. The video services receiver 110 can be realized as anydevice, system or logic capable of receiving signals via thehigh-bandwidth link 118 and the downlink receive antenna 108, andcapable of providing demodulated content to a customer via the displayelement 112.

The display element 112 may be, without limitation: a television set; amonitor; a computer display; or any suitable customer appliance withcompatible display capabilities. In various embodiments, the videoservices receiver 110 is implemented as a set-top box (STB) as commonlyused with DBS or cable television distribution systems. In otherembodiments, however, the functionality of the video services receiver110 may be commonly housed within the display element 112 itself. Instill other embodiments, the video services receiver 110 is a portabledevice that may be transportable with or without the display element112. The video services receiver 110 may also be suitably configured tosupport broadcast television reception, video game playing, personalvideo recording and/or other features as desired.

During typical operation, the video services receiver 110 receivesprogramming (broadcast events), signaling information, and/or other datavia the high-bandwidth link 118. The video services receiver 110 thendemodulates, decompresses, descrambles, and/or otherwise processes thereceived digital data, and then converts the received data to suitablyformatted video signals 120 that can be rendered for viewing by thecustomer on the display element 112. The video services receiver 110 mayalso be capable of receiving web-based content via the network 116, theInternet, etc. Additional features and functions of the video servicesreceiver 110 are described below with reference to FIG. 2.

The system 100 includes one or more speakers, transducers, or othersound generating elements or devices that are utilized for playback ofsounds during operation of the system 100. These sounds may be, withoutlimitation: the audio portion of a video channel or program; the contentassociated with an audio-only channel or program; audio related to thenavigation of the graphical programming guide; confirmation tonesgenerated during operation of the system; alerts or alarm tones; or thelike. Depending upon the embodiment, the system 100 may include aspeaker (or a plurality of speakers) attached to, incorporated into, orotherwise associated with the display device, the video servicesreceiver 110, the remote control device 113, and/or a home theater,stereo, or other entertainment system provided separately from thesystem 100.

The video services receiver 110 can be operated in a traditional mannerto receive, decode, and present a first video program event as theprimary video content (i.e., a show that the user is currentlywatching). Moreover, the video services receiver 110 can be operated toreceive and buffer or record one or more other video program events(i.e., a favorite show that the user is not currently watching). Incertain implementations, the video services receiver 110 includesmultiple tuners to enable it to concurrently receive and process theprimary video content and one or more additional video program eventsfor purposes of buffering or recording in the manner described in moredetail herein.

Although not separately depicted in FIG. 1, the video services receiver110 may include video place-shifting functionality or it may cooperatewith a suitably configured place-shifting device or component toplace-shift video content that is received by the video servicesreceiver 110. In this regard, it may be possible to provide live orrecorded content to a remote device operated by the user, wherein thevideo services receiver 110 serves as a source of the place-shiftedcontent.

FIG. 2 is a schematic representation of an embodiment of a videoservices receiver 200 suitable for use in the video servicesbroadcasting system 100 shown in FIG. 1. The video services receiver 200is designed and configured for providing recorded, buffered, andnon-recorded (i.e., “live”) content to a user, by way of one or morepresentation devices. Accordingly, the video services receiver 200 canbe used to receive program content, record program content, and presentrecorded and non-recorded program content to an appropriate display forviewing by a customer or user. The video services receiver 200 alsosupports the automatic and intelligent recording feature presented here,wherein a designated video event is automatically buffered or recordedwhen the video services receiver 200 detects a condition that representsa viewing conflict that might inhibit or prevent the user from viewingsome or all of the designated video event. This enhanced feature isdescribed in more detail below.

This illustrated embodiment of the video services receiver 200 generallyincludes, without limitation: at least one processor 202; at least onememory element 204 having a suitable amount of memory associatedtherewith; a receiver interface 206; a display interface 208 for thedisplay; an audio interface 210; a recording module 212; and a remotecontrol transceiver 214. These components and elements may be coupledtogether as needed for purposes of interaction and communication using,for example, an appropriate interconnect arrangement or architecture216. It should be appreciated that the video services receiver 200represents a “full featured” embodiment that supports various featuresdescribed herein. In practice, an implementation of the video servicesreceiver 200 need not support all of the enhanced features describedhere and, therefore, one or more of the elements depicted in FIG. 2 maybe omitted from a practical embodiment. Moreover, a practicalimplementation of the video services receiver 200 will includeadditional elements and features that support conventional functions andoperations.

The processor 202 may be implemented or performed with a general purposeprocessor, a content addressable memory, a digital signal processor, anapplication specific integrated circuit, a field programmable gatearray, any suitable programmable logic device, discrete gate ortransistor logic, discrete hardware components, or any combinationdesigned to perform the functions described here. In particular, theprocessor 202 may be realized as a microprocessor, a controller, amicrocontroller, or a state machine. Moreover, the processor 202 may beimplemented as a combination of computing devices, e.g., a combinationof a digital signal processor and a microprocessor, a plurality ofmicroprocessors, one or more microprocessors in conjunction with adigital signal processor core, or any other such configuration.

The memory elements 204 may be realized using any number of data storagedevices, components, or modules, as appropriate to the embodiment.Moreover, the video services receiver 200 could include memory elements204 integrated therein and/or memory elements 204 operatively coupledthereto, as appropriate to the particular embodiment. In practice, amemory element 204 could be realized as RAM memory, flash memory, EPROMmemory, EEPROM memory, registers, a hard disk, a removable disk, or anyother form of storage medium known in the art. In certain embodiments,the memory elements 204 include a hard disk, which may also be used tosupport integrated DVR functions of the video services receiver 200. Inthis regard, at least one memory element may be considered to be anonvolatile data storage element. The memory elements 204 may alsoaccommodate volatile data storage. For example, at least one memoryelement 204 may be configured to serve as a time shift buffer for videocontent received by the video services receiver 200.

The memory elements 204 can be coupled to the processor 202 such thatthe processor 202 can read information from, and write information to,the memory elements 204. In the alternative, the memory elements 204 maybe integral to the processor 202. As an example, the processor 202 and amemory element 204 may reside in a suitably designed ASIC.

As schematically depicted in FIG. 2, the memory elements 204 can be usedto store recorded program events 220 (temporarily such as with a timeshift buffer, or in a nonvolatile manner such as with a hard disk) underthe control and management of the recording module 212, and to maintaina suitably formatted database (or any appropriate data structure) thatindicates a viewing pattern 222 for the user. A recorded program event220 may be, without limitation: a recorded audio-only program (such as arecorded radio program or a recorded music channel); a recordedvideo-only or image-only program; a recorded audiovisual program thatconveys both audio and video or image content; or the like. In practice,the recorded program events 220 can be formatted, handled, and stored inaccordance with well-known and conventional DVR or media bufferingtechniques and methodologies.

In practice, the video services receiver 200 could generate, maintain,and update any number of viewing patterns for any number of differentusers. The simple case described here assumes that only one viewingpattern 222 is maintained for a single user of the video servicesreceiver 200. In accordance with certain embodiments, however, the videoservices receiver 200 maintains a plurality of different viewingpatterns corresponding to a plurality of different users. In such animplementation, the video services receiver 200 can utilize anappropriate technology that enables it to determine which user's viewingpattern to utilize. For example, the video services receiver 200 mayemploy a user login routine to determine the identity of the currentuser.

The receiver interface 206 is coupled to the customer's satelliteantenna, and the receiver interface 206 is suitably configured toreceive and perform front end processing on signals transmitted bysatellite transponders. In this regard, the receiver interface 206 canreceive data associated with any number of services (e.g., videoservices), including data that is used in connection with the viewingpattern 222, on-screen menus, GUIs, interactive programming interfaces,etc. The receiver interface 206 may leverage conventional designconcepts that need not be described in detail here.

The display interface 208 is operatively coupled to one or more displayelements (not shown) at the customer site. The display interface 208represents the hardware, software, firmware, and processing logic thatis utilized to render graphics, images, video, and other visual indiciaon the customer's display. In this regard, the display interface 208facilitates the presentation of programs on the display(s) at thecustomer premises. For example, the display interface 208 is capable ofproviding graphical interactive programming interfaces for videoservices, interactive listings of recorded programs, interactivegraphical menus, and other GUIs for display to the user. The displayinterface 208 may leverage conventional design concepts that need not bedescribed in detail here.

The audio interface 210 is coupled to one or more audio systemcomponents (not shown) at the customer site. The audio interface 210represents the hardware, software, firmware, and processing logic thatis utilized to generate and provide audio signals associated with theoperation of the video services receiver 200. Depending upon theparticular embodiment, the audio interface 210 may be tangibly orwirelessly connected to the audio portion of a television or monitordevice, or it may be tangibly or wirelessly connected to a sound systemcomponent that cooperates with the television or monitor device.

The recording module 212 is operatively coupled to the receiverinterface 206 to record program events provided by the incomingservices. In practice, the recording module 212 may include, cooperatewith, or be realized as hardware, software, and/or firmware that isdesigned to provide traditional recording and/or buffering features andfunctions for the video services receiver 200. Accordingly, therecording module 212 may record video programs provided by videoservices, audio-only programs provided by audio services, or the like.As mentioned above, the recording module 212 cooperates with the memoryelements 204 to store the recorded program events 220 as needed.

The remote control transceiver 214 performs wireless communication withone or more compatible remote devices, such as a remote control device,a portable computer, an appropriately equipped mobile telephone, or thelike. The remote control transceiver 214 enables the user to remotelycontrol various functions of the video services receiver 200, inaccordance with well-known techniques and technologies. In certainembodiments, the remote control transceiver 214 is also used towirelessly receive requests that are related to the generation, display,control, and/or operation of recorded program listings. For example, theremote control device 113 (see FIG. 1) could be used to initiate aplayback command to request playback of a recorded program.

The system 100 (FIG. 1) and the video services receiver 200 (FIG. 2) canbe used to address situations where a user might be unavailable to watchone of his favorite or regular shows, wherein recording of thatparticular show has not been scheduled in advance. In this regard, FIG.3 is a flow chart that illustrates an exemplary embodiment of a process300 for operating a video services receiver. The various tasks performedin connection with the process 300 (and with the other processesdescribed herein) may be performed by software, hardware, firmware, orany combination thereof. For illustrative purposes, the description of aprocess may refer to elements mentioned above in connection with FIG. 1and FIG. 2. Moreover, portions of a process may be performed bydifferent elements of the described system, e.g., a processing module, asoftware component, or a functional element of a video servicesreceiver. It should be appreciated that a described process may includeany number of additional or alternative tasks, the tasks shown in agiven figure need not be performed in the illustrated order, and aprocess presented here may be incorporated into a more comprehensiveprocedure or process having additional functionality not described indetail herein. Moreover, one or more of the tasks shown in a givenfigure could be omitted from an embodiment of the illustrated process aslong as the intended overall functionality remains intact.

The process 300 generates, maintains, updates, and utilizes a databasethat includes or otherwise indicates at least one viewing pattern for auser of the video services receiver (task 302). For the sake ofsimplicity and brevity, this example focuses on the basic scenario wherethe video services receiver supports only one user having only onemaintained viewing pattern. The stored and maintained viewing patternmay be influenced by or derived from one or more of the following,without limitation: the user's actual viewing history; user-identifiedpreferences, likes, or dislikes; the user's actual recording history(e.g., scheduled DVR recordings); the user's on-demand wish list; or thelike. In certain embodiments, the user's viewing pattern identifies oneor more favorite channels, one or more favorite program events or shows,one or more preferred movie genres, or the like. Although not alwaysrequired, certain preferred implementations employ smart logic,artificial intelligence, expert system technologies, and/or othermethodologies that enable the video services receiver to monitor theuser's viewing habits and tendencies and, in response to suchmonitoring, dynamically update and revise the stored viewing patterndatabase for the user. Accordingly, task 302 could be performed in thebackground in an ongoing manner to improve the accuracy of the viewingpattern as time progresses.

In practice, the video services receiver may employ a channel trackingfunction that keeps statistics related to the user's frequently watchedchannels, program titles, genres, actors, directors, etc. This allowsthe process 300 to keep track of user favorites at different time slots,on different days, and the like. In this regard, the process 300maintains and updates the user's viewing pattern database based on daysand time slots (wherein time slots typically correspond to the starttimes of video program events, e.g., at the top of each hour and inthirty minute increments). A portion of a typical viewing pattern isprovided below as Table 1. This example is limited to an evening primetime period. It should be appreciated that the user's viewing patternmay span an entire 24-hour period, and the viewing pattern may includeentries for every day of the week.

TABLE 1 User Viewing Pattern (Favorites) Time Sun Mon Tue Wed Thu FriSat 7:00 PM CH 5 CH 1 CH 1 CH 1 CH 1 CH 1 CH 1 7:30 PM CH 7 CH 5 CH 5 CH5 CH 5 CH 5 CH 8 8:00 PM CH 24 CH 9 CH 19 CH 79 CH 91 CH 56 CH 63 8:30PM CH 67 CH 141 CH 51 CH 4 CH 7 CH 11 CH 55 9:00 PM CH 8 CH 1 CH 1 CH 1CH 6 CH 4 CH 7 9:30 PM CH 3 CH 3 CH 3 CH 3 CH 2 CH 2 CH 5

The video services receiver can designate a favorite channel or programevent for each time slot, based on the user's historical viewing habitsand/or based on user-entered configuration data (such as statedpreferences, “seed” values, or the like). Table 1 relates to anembodiment where the viewing pattern simply indicates the time slots(and days) along with the channel number and/or any identifier of thecorresponding video service. In other words, the viewing pattern neednot monitor and identify the titles of the favorite program events,although that could be implemented as an option. A quick review of Table1 shows that the user tends to watch Channel 1 at 7:00 PM during theweek (perhaps this corresponds to the evening news). Thus, the process300 can safely assume that Channel 1 is a favorite channel for thosetime slots. At 8:30 PM, however, the user tends to view differentchannels on different days. To this end, the viewing pattern databasemay include any number of time slot entries to accommodate the favoritechannels of the user. As mentioned above, the entries may beautomatically populated and updated in an intelligent and dynamic mannerby the video services receiver. Moreover, one or more of the entriescould be created by the user if so desired. For example, the user couldaccess a configuration function that allows her to specify whichprograms are favorites (at least initially as a seed data point).

The video services receiver can iteratively assign weights to differentchannels based on the duration a particular channel is watched for agiven time interval. Alternatively or additionally, the video servicesreceiver could maintain a simple count to determine which program eventor channel is viewed the majority of the time during each time slot ofinterest. In practice, the process 300 continuously updates the viewingpattern database based on actual viewing habits. Accordingly, theprocess 300 can dynamically tune the viewing pattern database to makeongoing adjustments as needed.

The video services receiver monitors its current operating state whileconsulting the viewing pattern database. More specifically, the videoservices receiver is suitably configured to detect a condition, state,or operating scenario that is inconsistent with the viewing pattern thatis maintained for the user. In this regard, the process 300 checks for acondition that conflicts with the start time or presentation time slotof a favorite program event (query task 304). Notably, the process 300may check for current conflicts and/or for potential conflicts thatmight arise in the near future (e.g., fifteen or thirty minutes in thefuture). As explained in more detail below with reference to FIG. 4, onetype of conflict relates to a start time conflict, wherein the user iscurrently viewing a program event that will (or could) overlap with thescheduled starting time of a favorite program event to be provided on adifferent channel. Another type of conflict (described in more detailbelow with reference to FIG. 5) relates to a situation where the process300 determines that the user is not actively watching any programmingprovided by the video services receiver.

If no conflicting condition is detected (the “No” branch of query task304), then the process 300 maintains the current operating state andcontinues as usual (task 306). As depicted in FIG. 3, the task 306 leadsback to task 302 such that the video services receiver can monitor theongoing viewing habits of the user and, in response to the monitoring,automatically update the stored viewing pattern if needed. Thus, thevideo services receiver can alter the favorite program events for thedifferent time slots in a dynamic and real-time manner.

If the process 300 detects a condition that is inconsistent with theuser's viewing pattern (the “Yes” branch of query task 304), then theprocess 300 consults the viewing pattern database to identify anddesignate a program event that corresponds to the conflict (task 308).Notably, task 308 relies on the information contained in the viewingpattern database and, therefore, the process 300 assumes that the useris interested in the designated program event even though she may bewatching a different show or may be busy doing something that does notinvolve the video presentation system. The viewing pattern database ismaintained in a manner that makes it easy for the video servicesreceiver to identify which video program event should be flagged asfavorite content. In this regard, task 308 can access the viewingpattern database and perform a table lookup with the day and a current(or future) time slot as the two input values to arrive at the desiredentry. As shown in Table 1 above, each entry identifies the user'sfavorite channel for that particular day and time slot.

Thereafter, the process 300 may continue by recording the designatedprogram event (task 310). The recording may involve a temporary timeshift buffer and/or a nonvolatile data storage element. Notably, task310 records the program event to address and resolve the detectedconflicting condition. In other words, task 310 automatically recordsthe user's favorite channel or program event to resolve the conflict.Automated recording in this manner gives the user the opportunity toview favorite programming without missing any of the content that wouldotherwise be missed at or near the beginning of the scheduled time slot.

FIG. 4 is a flow chart that illustrates an exemplary embodiment of aprocess 400 for operating a video services receiver to buffer thebeginning of a favorite video program event when the user is viewing aconflicting program. The process 400 is consistent with the process 300described above, and it may be considered to be a more detailed versionof the process 300. In this regard, common or shared aspects andfeatures of the two processes will not be redundantly described here inthe context of the process 300.

The process 400 can be performed when the video services receiver iscurrently tuned to an ongoing program event. Accordingly, the process400 decodes and presents the ongoing program event for viewing by theuser (task 402). The process 400 may also monitor the state of the videoservices receiver to detect whether the ongoing program event conflictswith the scheduled start time of a favorite program event that isincluded in the user's viewing pattern database (query task 404). Forexample, the process 400 may detect that the video services receiverremains tuned to the ongoing program event (or tuned to the respectivechannel) after the scheduled start time of a favorite program event.This scenario could arise if the ongoing program event is a livesporting event that has gone into overtime, or if the user has simplyforgotten to change the channel. Of course, other programming andscheduling conflicts may arise, and the process 400 can be suitablydesigned to contemplate other types of conflicts that may need to beaddressed.

If the process 400 does not detect a start time conflict (the “No”branch of query task 404), then the process 400 maintains the currentoperating state and continues as usual (task 406). For example, if thevideo services receiver is currently tuned to, and is currentlydecoding, a favorite channel at that particular time, then it can safelyassume that no conflict exists. As depicted in FIG. 4, the task 406leads back to task 402 such that the video services receiver continuesdecoding and presenting the current program event in a seamless manner.If, however, the process 400 detects an actual or potential start timeconflict (the “Yes” branch of query task 404), then the video servicesreceiver is commanded to begin recording at least one designated programevent that is included in the viewing pattern for the user. In practice,the process 400 may activate the recording module of the video servicesreceiver such that the favorite program event can be buffered and/orstored in a nonvolatile manner in a hard disk. Thus, in response to thedetection of an actual or potential start time conflict, the videoservices receiver can automatically (and without any user involvement)record the favorite program event at a time that is no later than thescheduled start time of the favorite program event.

If there is only one “overlapping” or conflicting video program event inthe user's viewing pattern database, then the process 400 may bufferthat favorite program event from its scheduled start time, or earlier ifso desired (task 408). Recording at least the beginning of thedesignated program event may be desirable to address the detectedconflict condition and to enable the user to quickly and easily accessthe beginning of the recorded content. In certain embodiments, theviewing pattern database may be configured to identify more than onefavorite program event at a given start time, time slot, or the like. Ifso, and if the video services receiver has the necessary capabilitiesand available tuners, then task 408 could buffer more than one favoritechannel if needed. Moreover, the video services receiver may be suitablyconfigured to record more than one program event if the start times arestaggered. Such a feature would allow the user to continue viewing theongoing program event while a plurality of favorite program events areautomatically recorded for later access.

The determination of a start time conflict may also initiate thegeneration and sending of an appropriate notification to the user (task410). The notification may be realized in one or more formats,including, without limitation: an email; a text message; a multimediamessage; an automated telephone call or voicemail message; a popupmessage; an instant message; a mobile device notification; or the like.In certain embodiments, the notification indicates that the designatedprogram event has been (or will be) recorded for the user. Thenotification may include one or more active controls or options that canbe selected or activated by the recipient. For example, the notificationmay enable the user to select whether or not recording should continue.As another example, the notification may include a control element thatallows the user to immediately switch channels to the favorite programevent. In some implementations, the notification may enable the user toinitiate a place-shifting function such that the favorite program eventcan be reformatted and delivered to a remote presentation device (suchas the user's mobile phone).

The designated program event can be recorded in the background while theuser continues to watch the current program event. If the user decidesto access the buffered program event (the “Yes” branch of query task412), then the process 400 controls the video services receiver toswitch from the ongoing program event and begin presentation of thebuffered content (task 414). Otherwise, query task 412 leads to task 406to continue presenting the ongoing program event as usual. Depending onthe embodiment, task 414 may begin playback at the beginning of thestored content, or it may being playback at the current “live” point inthe program event (while allowing the user to choose any time shiftedplayback point if so desired). In this regard, the notification providedat task 410 may include a graphical control element that gives the userthe option to begin playback at the beginning of the recorded content orto merely change the channel to join the designated program event inprogress.

FIG. 5 is a flow chart that illustrates an exemplary embodiment of aprocess 500 for operating a video services receiver to record a favoritevideo program event when the user is not viewing any programming. Theprocess 500 is consistent with the process 300 described above, and itmay be considered to be a more detailed version of the process 300. Inthis regard, common or shared aspects and features of the two processeswill not be redundantly described here in the context of the process300.

The process 500 is suitably designed to monitor the operating status ofthe video services receiver, the operating status of the associateddisplay element, the activity state or physical condition of the user,the status of the surrounding environment, and other conditions (if sodesired) that indicate the user is not watching any video programcontent, is not paying attention, etc. Although any number of triggeringconditions could be monitored, this example addresses only threeexemplary scenarios: (1) the video services receiver is in a standbymode; (2) the corresponding display element is in a standby mode; and(3) the user is absent or is not actively watching the content beingdelivered by the video services receiver.

This description assumes that the process 500 has already determinedthat a potentially conflicting scenario has occurred or will occur inthe near future. In other words, the process 500 has identified that thestart time of a favorite program event is approaching. Accordingly, ifthe video services receiver is in a standby mode (the “Yes” branch ofquery task 502), then the process 500 continues by automaticallyrecording a favorite program event at a time that is no later than thescheduled start time of the event (task 504). Operation in a standbymode allows the video services receiver to perform background routines(such as the process 500) even though no program content is beingreceived, decoded, or presented. Thus, the video services receiverremains powered on during the standby mode, to enable it to perform thevarious monitoring, detection, and recording processes described herein.For this particular embodiment, the video services receiver utilizes itsnonvolatile recording feature to store the program content, thusenabling the user to enjoy the favorite program content at any timethereafter. In addition to the automatic recording of the favoritecontent, the process 500 may also generate and send a notification tothe user (task 506). The notification function of the process 500 issimilar to that described above with reference to task 410 of theprocess 400.

The process 500 may also check if the user's display element is in astandby mode (the “Yes” branch of query task 508). If so, then theprocess 500 assumes that the user is not currently viewing anyprogramming and, therefore, the process 500 continues to task 504 toautomatically record the favorite program event. In practice, the videoservices receiver could communicate with the display element using anysuitable data communication technique or protocol, e.g., a wirelesslink, via an HDMI cable, or the like. Thus, the video services receivercan monitor the standby and active status of the display element in anongoing manner.

The process 500 may also utilize one or more sensors to determinewhether or not the user is absent, actively viewing, asleep, out of theroom, or the like. For example, the process 500 could utilize motionsensors, a camera and facial recognition software, motion sensors,proximity sensors, and/or other devices, instruments, or sensors asneeded to formulate a recording trigger decision. In this regard, if theprocess 500 determines that nobody is in front of the display element,or that the user has fallen asleep, or that the user of interest hasleft the room and another person is watching the display element, thenthe video services receiver can take appropriate action. This exampleassumes that the video services receiver has the capability to determinewhether or not the user of interest is present or absent. If the process500 determines that the user is absent (the “Yes” branch of query task510), then the process 500 assumes that the user is not currentlyviewing any programming and, therefore, the process 500 continues totask 504 to automatically record the favorite program event in themanner described above.

As mentioned above, the process 500 could be designed to check for anynumber of conflicting conditions that might call for the automaticrecording of one or more video program events for the user. Althoughthree specific scenarios have been presented here, it should beunderstood that additional conditions, criteria, and operating statescould serve as additional or alternative recording triggers within thecontext of this automated system.

If the process 500 fails to detect any conflicting conditions thattrigger recording of favorite content (the “No” branch of query task510), the process 500 maintains the current operating state andcontinues as usual without recording any program content (task 512). Asdepicted in FIG. 5, the task 512 leads back to task 502 such that thevideo services receiver continues to monitor for the various recordingtriggers mentioned above.

The techniques and methodologies presented here allow a video servicesreceiver to monitor and update a user's favorite channels or programsand automatically record favorite channels/programs as needed (withoutany user involvement and without any pre-scheduled recordinginstructions. The video services receiver checks for viewing conflictsthat might call for the automatic recording of a favorite program event.In accordance with one methodology, the receiver detects when an ongoingprogram event continues beyond the start time of a favorite programevent and responds by automatically recording the favorite programevent. In accordance with another methodology, the receiver determinesthat the user of interest is not viewing any content provided by thevideo services system and responds by automatically recording a favoriteprogram event from the beginning of that event.

While at least one exemplary embodiment has been presented in theforegoing detailed description, it should be appreciated that a vastnumber of variations exist. It should also be appreciated that theexemplary embodiment or embodiments described herein are not intended tolimit the scope, applicability, or configuration of the claimed subjectmatter in any way. Rather, the foregoing detailed description willprovide those skilled in the art with a convenient road map forimplementing the described embodiment or embodiments. It should beunderstood that various changes can be made in the function andarrangement of elements without departing from the scope defined by theclaims, which includes known equivalents and foreseeable equivalents atthe time of filing this patent application.

What is claimed is:
 1. A method of operating a video services receiver,the method comprising: maintaining, at the video services receiver, adatabase that indicates a viewing pattern for a user of the videoservices receiver; detecting a condition that is inconsistent with themaintained viewing pattern for the user; and in response to thedetecting, recording a designated program event included in the viewingpattern for the user, wherein the recording addresses the detectedcondition.
 2. The method of claim 1, wherein: the viewing patternidentifies favorite channels of the user; and the designated programevent corresponds to one of the favorite channels.
 3. The method ofclaim 2, wherein the viewing pattern identifies time slots for thefavorite channels.
 4. The method of claim 2, wherein the viewing patternidentifies days and time slots for the favorite channels.
 5. The methodof claim 1, wherein: the viewing pattern identifies favorite programevents of the user; and the designated program event is one of theidentified favorite program events.
 6. The method of claim 1, furthercomprising: monitoring, at the video services receiver, ongoing viewinghabits of the user; and automatically updating the viewing pattern inresponse to the monitored ongoing viewing habits of the user.
 7. Themethod of claim 1, wherein at least a portion of the viewing patternincludes entries created by the user.
 8. The method of claim 1, whereinthe detecting comprises: determining that the video services receiver iscurrently tuned to an ongoing program event that conflicts with ascheduled start time of the designated program event.
 9. The method ofclaim 1, wherein the detecting comprises: determining that the videoservices receiver is not in use by the user.
 10. The method of claim 9,further comprising: in response to the determining, sending anotification to the user, wherein the notification indicates that thedesignated program event has been or will be recorded.
 11. A videoservices receiver for providing recorded and non-recorded content to auser, the video services receiver comprising: a receiver interface toreceive data associated with video services; a recording module coupledto the receiver interface to record program events provided by the videoservices; at least one data storage element coupled to the recordingmodule to store recorded content for the recording module; a displayinterface for a display operatively coupled to the video servicesreceiver, the display interface facilitating presentation of recordedand non-recorded program events on the display; and a processor coupledto the receiver interface, the recording module, the at least one datastorage element, and the display interface, wherein the processordetects a condition that is inconsistent with a maintained viewingpattern for a user of the video services receiver, and, in response tothe detected condition, activates the recording module to record adesignated program event included in the maintained viewing pattern. 12.The video services receiver of claim 11, wherein: the viewing patternidentifies favorite channels of the user; and the designated programevent corresponds to one of the favorite channels.
 13. The videoservices receiver of claim 12, wherein the viewing pattern identifiesdays and time slots for the favorite channels.
 14. The video servicesreceiver of claim 11, wherein the processor is further configured tomonitor ongoing viewing habits of the user and, in response to themonitored ongoing viewing habits, automatically update the viewingpattern.
 15. The video services receiver of claim 11, wherein thedetected condition corresponds to a condition where the video servicesreceiver is currently tuned to an ongoing program event that conflictswith a scheduled start time of the designated program event.
 16. Thevideo services receiver of claim 11, wherein the detected conditioncorresponds to a standby state of the video services receiver.
 17. Thevideo services receiver of claim 11, wherein the detected conditioncorresponds to a standby state of a display element associated with thevideo services receiver.
 18. A method of operating a video servicesreceiver, the method comprising: maintaining, at the video servicesreceiver, a database that indicates a favorite program event having ascheduled start time; detecting that the video services receiver iscurrently tuned to an ongoing program event that conflicts with thescheduled start time of the favorite program event; and in response tothe detecting, automatically recording the favorite program event at atime that is no later than the scheduled start time of the favoriteprogram event.
 19. The method of claim 18, further comprising:monitoring, at the video services receiver, ongoing viewing habits ofthe user; designating favorite program events for the user, based on themonitored ongoing viewing habits; and automatically updating thedatabase with the designated favorite program events.
 20. The method ofclaim 18, further comprising: in response to the detecting, sending anotification to the user, wherein the notification indicates that thefavorite program event has been or will be recorded.
 21. A method ofoperating a video services receiver having an associated display elementconfigured to display content provided by the video services receiver,the method comprising: maintaining, at the video services receiver, adatabase that indicates a favorite program event having a scheduledstart time; detecting that the video services receiver is currently in areceiver standby mode, that the display element is currently in adisplay standby mode, or that the video services receiver is currentlyin the receiver standby mode and the display element is currently in thedisplay standby mode; and in response to the detecting, automaticallyrecording the favorite program event at a time that is no later than thescheduled start time of the favorite program event.
 22. The method ofclaim 21, further comprising: monitoring, at the video servicesreceiver, ongoing viewing habits of the user; designating favoriteprogram events for the user, based on the monitored ongoing viewinghabits; and automatically updating the database with the designatedfavorite program events.
 23. The method of claim 21, further comprising:in response to the detecting, sending a notification to the user,wherein the notification indicates that the favorite program event hasbeen or will be recorded.